package com.heima.Generic01;

import java.util.List;

public class generic01 {
    public static void main(String[] args) {
        Person<String> person = new Person<String>("hsp");
        person.show();
        List a;

        /*
         class Person<String> {
             String s; // E表示s的数据类型，该数据类型在定义Person对象的时候指定，即在编译期间，就确定E是什么类型

             public Person(String s) { // E 可以是参数类型
                this.s = s;
            }
                public String f(){ // 返回类型使用 E
                    return s;
                 }

         */
        Person<Integer> person2 = new Person<Integer>(1000);
        /*
        class Person<E> {
            E s;// E表示s的数据类型，该数据类型在定义Person对象的时候指定，即在编译期间，就确定E是什么类型


            public Person(E s) { // E 可以是参数类型
                this.s = s;
            }
            public E f(){ // 返回类型使用 E
                return s;
           }
}
         */
        //System.out.println(person.);
        person2.show();
    }
}
// 希望是string 是Integer
// 表示在创建Person对象的时候就指定一个
class Person<E> {
    E s;// E表示s的数据类型，该数据类型在定义Person对象的时候指定，即在编译期间，就确定E是什么类型


    public Person(E s) { // E 可以是参数类型
        this.s = s;
    }
    public E f(){ // 返回类型使用 E
        return s;
    }
    public void show(){
        System.out.println(s.getClass());
    }

}

